//============================================================================
// Nome        : Dados.h
// Autores     : T1G7
//                                      Felipe Galvão do Espírito Santo
//                                      Ivanilda Maísa Costa Brazão de Almeida
//                                      Paulo Jorge de Faria dos Reis
// Versão      : 1.0
// Data        : Maio de 2011
// Copyright   : Creative Commons 2.0
// Descrição   : CAL 2011 - TG1
//               Tema 12 - Transporte de pacientes de uma clínica de saúde.
//============================================================================

#ifndef DADOS_H_
#define DADOS_H_

#include <string>
#include <vector>
#include <fstream>
#include "Auxiliar.h"
#include "Sucursal.h"
#include "Veiculo.h"
#include "Cliente.h"
#include "Consultas.h"
#include "Consulta.h"


using std::string;
using std::vector;

//! Classe para guardar todos os dados da aplicação.
class Dados
{
public:
	Dados();
	~Dados();
	int carregarDados(string nomeFicheiro, const string separador);		//! Lê o ficheiro e carrega dados
	void escreverDados(string ficheiro, const string separador);		//! Grava os dados em ficheiro

	//! Funções relacionadas com Sucursais.
	void abrirSucursal(Sucursal* novaSucursal);


	//! Funções relacionadas com Clientes.
	void novoCliente(Cliente* utente);
	void novoCliente(string _nome, string _morada, string _identificador, string _latitude, string _longitude, string _projX, string _projY);

	//! Funções relacionadas com Veiculos.
	void novoVeiculo(Veiculo* carro);

	//! Funções relacionadas com Consultas.

private:
	friend class Interfaces;	//! A classe Interfaces deve conseguir aceder ao dados de Campeonato
	friend class Empresa;		//! A classe Empresa deve conseguir aceder ao dados de Campeonato
	string nomeEmpresa;			//! Para guardar um identificador da empresa.

	//! Conjunto de estruturas de dados a utilizar na aplicação.
	vector<Sucursal*> Sucursais;	//! Todas as sucursais.
	vector<Cliente*> Clientes;		//! Lista de clientes.
	vector<Veiculo*> Frota;			//! Frota de veículos da empresa.
	vector<Consultas*> Agenda;		//! Agenda de consultas diárias.

};


#endif /* DADOS_H_ */

